/**
 * =================================================
 *
 * 1. let
 *
 * 2. const
 *
 * 3. 模板字符串  console.log(`${name}的年龄是${age}`);
 *
 * 4. 属性简写    var data = { name, age };
 *
 * 5. 方法简写   app(){}
 *
 * 6. 箭头函数   () => {}
 *
 * 7. Promise
 *           // resolve 成功回调
 *           // reject  失败回调
 *          var p = new Promise(function(resolve, reject){
 *              setTimeout(() => {
 *                  resolve('张三');
 *              });
 *          })
 *
 *          p.then((data) => {
 *
 *          });
 *
 *
 *
 * Koa 异步处理 async、await 和 promise 的使用
 *
 *      async是"异步"的简写，
 *      await可以认为是 async wait的简写
 *      所以可以理解 async 用于声明一个 function是异步的
 *      而 await 用于等待一个异步方法执行完成。
 *
 *      简单理解：
 *
 *      async 是让方法变成异步
 *
 *      await 是等待异步方法执行完成。
 *
 *  await 是  ES7 里面的。
 *
 * =================================================
 */


function getData(){
    return '这是一个数据.';
}
console.log(getData());  // 这是一个数据.



async function getDataAsync (){
    return '这是一个数据.';
}
console.log(getDataAsync());  // Promise {"这是一个数据."}



// 获取 async 方法里的数据：
// 第一种：
var p = getDataAsync();
p.then((data) => {
   console.log(data);
});


// 第二种：
// await 必须使用在异步方法里。
async function test() {
    var d = await getDataAsync();
    console.log(d);
}
test();

